Communication networks have migrated from using specialized networking equipment executing on dedicated hardware, like routers, firewalls, and gateways, to software defined networks (SDNs) executing as virtualized network functions (VNF) in a cloud infrastructure. Network control is directly programmable and the underlying infrastructure is virtualized and abstracted from network services and functions. The ensemble of entities that may comprise a service—VNFs, VNF components (VFCs), virtual machines (VMs), and physical hardware—may dynamically change as the system continues to operate. The complex and dynamic nature of virtualized SDNs makes inventory management a challenging task. An inventory database may facilitate the creation of SDN applications using a modeling language to achieve model-driven networking.
Traditional graph query languages may not be designed to query a layered network inventory for discovering connectivity between nodes. For example, Gremlin or SPARQL may not be designed to return pathways of varying length, such as searches for a pathway of length not greater than 5, because 5 traversal steps return only pathways of length 5 and “zero or more” steps do not restrict the length. Languages that may support pathways of varying length, such as Cypher, do not provide the ability to add constraints that refer to the extracted pathways. For example, such languages provide inadequate solutions for finding pairs of nodes that are connected via routers of some other time (e.g., a certain pathway does not exist between them).
Further, the output of preexisting query languages are such that an additional query cannot be posed on the results of an original query. For example, some common query languages output a graph, while others may output a tuple of values, upon which an additional query cannot be applied. That is, preexisting query languages do not treat pathways as first-class citizens.
In practical network management, typical queries in a network inventory may relate to finding specific nodes, to the connectivity between nodes in some layer, to hosting relationships between nodes on different layers, or to discovery of induced pathways. Current query languages may not allow clear expression of such queries because such queries do not treat pathways as first-class citizens of the language. That is, such query languages are not closed under composition.
There is a need for a technology that facilitates temporal modeling of communication networks, including the types of network elements and the connections therebetween, in such a way that enables querying of that model to enable troubleshooting and creating of SDN applications, including queries for discovering pathways in the network, manipulating pathways, and time-travel queries.
This disclosure is directed to solving one or more of the problems in the existing technology.